package com.xique.park.service.biz.service;

import com.xique.common.core.web.domain.AjaxResult;
import com.xique.park.bean.domain.ParkDeviceNew;
import com.xique.park.bean.domain.ParkOn;
import com.xique.park.bean.request.client.ClientCancelPassRequest;
import com.xique.park.bean.request.client.ClientCashPassListRequest;
import com.xique.park.bean.request.client.ClientHandOutInfoRequest;
import com.xique.park.bean.request.client.ClientSpaceEditRequest;
import com.xique.park.bean.vo.client.ClientCashPassListVo;
import com.xique.park.bean.vo.client.ClientInOutVo;
import com.xique.park.bean.vo.client.ClientParkOnRecordVo;
import com.xique.park.controller.client.web.bean.dto.ParkInOut;
import com.xique.park.controller.client.web.bean.request.ClientParkOnListRequest;
import com.xique.park.controller.client.web.bean.request.WebClientLaneConfig;

import java.util.List;

/**
 * @author: caogq
 * @Date: 2021/7/26 09:37
 * @Description:
 */
public interface IClientBizService {

    AjaxResult getHomePageInfo(String clientId);

    List<ParkOn> getClientParkOnList(ClientParkOnListRequest request);

    List<ClientParkOnRecordVo> convetParkOnVoList(List<ParkOn> parkOns);

    AjaxResult getClientdeviceList(String clientId);

    List<ClientInOutVo> convertParkInoutToVo(List<ParkInOut> parkInOuts);
    /**
     * @description: 岗亭查看当前出口通道的记录
     * @author caogq
     * @date: 2022/4/20 13:29
     */
    AjaxResult handOutInfo(ClientHandOutInfoRequest request);

    AjaxResult cancelPass(ClientCancelPassRequest request);

    /**
     * 修改剩余车位数
     *
     * @param request
     * @return com.ruoyi.common.core.domain.AjaxResult
     * @author shd
     * @date 2021/8/9 14:56
     */
    AjaxResult spaceEdit(ClientSpaceEditRequest request) throws Exception;

    /**
     * 获取通道信息
     *
     * @param deviceId
     * @return com.ruoyi.common.core.domain.AjaxResult
     * @author shd
     * @date 2021/8/10 9:28
     */
    AjaxResult getLaneInfo(Long deviceId);

    /**
     * 岗亭现金收费记录
     *
     * @param request
     * @return
     */
    List<ClientCashPassListVo> clientCashPassList(ClientCashPassListRequest request);

    AjaxResult selectParkInDetail(Long inId);

    AjaxResult selectParkOutDetail(Long outId);
}
